FTPPUT/FTPGET(バッチ)
Windowsコマンドプロンプト用FTPバッチ
同じファイルを何度もUPしたりGETしたりするのが面倒になったので作ってみました。(^^;
◆FTPPUT
@ECHO OFF
SETLOCAL
:: SET DEBUG=ECHO :: --------------------------------------------------------- SET DEFAULTIP=nnn.nnn.nnn.nnn SET DEFAULTPATH=/home/*****/work SET DEFAULTMODE=bin SET DEFAULTUSER=***** SET DEFAULTPASS=***** :: --------------------------------------------------------- SET CMDNAME=%0 SET FTPCMD=ftp SET FTPEXEC=put SET FTPFILE=__TEMP__ SET SEPCHAR=:
:: --------------------------------------------------------- IF "%1"=="DEBUG" ( SET DEBUG=ECHO SHIFT ) :: --------------------------------------------------------- IF NOT "%DEBUG%"=="" ( ECHO.++++++++++++ DEBUG MODE ++++++++++++++++ ) :: --------------------------------------------------------- :: FILENAME : MODE
IF "%1"=="" GOTO :USAGE SET FILENAME=%1 SHIFT
:: IP ADDRESS : PATH
IF "%1"=="" ( SET IPADDRESS=%DEFAULTIP% ) ELSE ( SET IPADDRESS=%1 SHIFT )
:: USER : PASS
IF "%1"=="" ( SET USERINFO=%DEFAULTUSER% ) ELSE ( SET USERINFO=%1 )
:: --------------------------------------------------------- :: FILENAME : MODE
CALL :SEPPROC %FILENAME% SET FILENAME=%SEPITEM1% IF "%SEPITEM2%"=="" ( SET MODE=%DEFAULTMODE% ) ELSE ( SET MODE=%SEPITEM2% )
:: IP ADDRESS : PATH
CALL :SEPPROC %IPADDRESS% SET IPADDRESS=%SEPITEM1% IF "%SEPITEM2%"=="" ( SET DESTPATH=%DEFAULTPATH% ) ELSE ( SET DESTPATH=%SEPITEM2% )
:: USER : PASS
CALL :SEPPROC %USERINFO% SET USERINFO=%SEPITEM1% IF "%SEPITEM2%"=="" ( SET PASSINFO=%DEFAULTPASS% ) ELSE ( SET PASSINFO=%SEPITEM2% )
IF NOT "%DEBUG%"=="" ( ECHO.FILENAME [%FILENAME%] ECHO.MODE [%MODE%] ECHO.IP ADDRESS [%IPADDRESS%] ECHO.PATH [%DESTPATH%] ECHO.USER [%USERINFO%] ECHO.PASSWORD [%PASSINFO%] ) :: --------------------------------------------------------- IF NOT EXIST %FILENAME% ( ECHO.file not found.^(%FILENAME%^) GOTO :ENDBAT ) :: --------------------------------------------------------- ( ECHO.user %USERINFO% %PASSINFO% ECHO.cd %DESTPATH% ECHO.%MODE% ECHO.%FTPEXEC% %FILENAME% ECHO.bye ) >%FTPFILE%
:: --------------------------------------------------------- IF NOT "%DEBUG%"=="" ( ECHO.----- START ------ TYPE %FTPFILE% ECHO.----- END ------ )
%DEBUG% %FTPCMD% -i -n -s:%FTPFILE% %IPADDRESS%
IF "%DEBUG%"=="" ( DEL %FTPFILE% ) :: ------------------------------------------------------- GOTO :ENDBAT
:: ------------------------------------------------------- :SEPPROC SETLOCAL SET SRC=%1 SET SEPITEM1= SET SEPITEM2= :SEPPROC_LOOP IF "%SRC:~0,1%"=="" GOTO :SEPPROC_EXIT IF "%SRC:~0,1%"=="%SEPCHAR%" ( SET SEPITEM2=%SRC:~1% GOTO :SEPPROC_EXIT ) ELSE ( SET SEPITEM1=%SEPITEM1%%SRC:~0,1% ) IF "%SRC:~1,1%"=="" GOTO :SEPPROC_EXIT SET SRC=%SRC:~1% GOTO :SEPPROC_LOOP :SEPPROC_EXIT (ENDLOCAL &^ SET SEPITEM1=%SEPITEM1%&^ SET SEPITEM2=%SEPITEM2%&^ EXIT /B)
:: ------------------------------------------------------- :USAGE ECHO.usage %CMDNAME% [filename:mode] [ipaddress:path] [user:pass] GOTO :ENDBAT :: -------------------------------------------------------- :ENDBAT ENDLOCAL
EXIT /B
|
◆FTPGET @ECHO OFF
SETLOCAL
:: SET DEBUG=ECHO :: --------------------------------------------------------- SET DEFAULTIP=nnn.nnn.nnn.nnn SET DEFAULTPATH=/home/*****/work SET DEFAULTMODE=bin SET DEFAULTUSER=***** SET DEFAULTPASS=***** :: --------------------------------------------------------- SET CMDNAME=%0 SET FTPCMD=ftp SET FTPEXEC=get SET FTPFILE=__TEMP__ SET SEPCHAR=:
:: --------------------------------------------------------- IF "%1"=="DEBUG" ( SET DEBUG=ECHO SHIFT ) :: --------------------------------------------------------- IF NOT "%DEBUG%"=="" ( ECHO.++++++++++++ DEBUG MODE ++++++++++++++++ ) :: --------------------------------------------------------- :: FILENAME : MODE
IF "%1"=="" GOTO :USAGE SET FILENAME=%1 SHIFT
:: IP ADDRESS : PATH
IF "%1"=="" ( SET IPADDRESS=%DEFAULTIP% ) ELSE ( SET IPADDRESS=%1 SHIFT )
:: USER : PASS
IF "%1"=="" ( SET USERINFO=%DEFAULTUSER% ) ELSE ( SET USERINFO=%1 )
:: --------------------------------------------------------- :: FILENAME : MODE
CALL :SEPPROC %FILENAME% SET FILENAME=%SEPITEM1% IF "%SEPITEM2%"=="" ( SET MODE=%DEFAULTMODE% ) ELSE ( SET MODE=%SEPITEM2% )
:: IP ADDRESS : PATH
CALL :SEPPROC %IPADDRESS% SET IPADDRESS=%SEPITEM1% IF "%SEPITEM2%"=="" ( SET DESTPATH=%DEFAULTPATH% ) ELSE ( SET DESTPATH=%SEPITEM2% )
:: USER : PASS
CALL :SEPPROC %USERINFO% SET USERINFO=%SEPITEM1% IF "%SEPITEM2%"=="" ( SET PASSINFO=%DEFAULTPASS% ) ELSE ( SET PASSINFO=%SEPITEM2% )
IF NOT "%DEBUG%"=="" ( ECHO.FILENAME [%FILENAME%] ECHO.MODE [%MODE%] ECHO.IP ADDRESS [%IPADDRESS%] ECHO.PATH [%DESTPATH%] ECHO.USER [%USERINFO%] ECHO.PASSWORD [%PASSINFO%] )
:: --------------------------------------------------------- IF EXIST %FILENAME% ( ECHO.file found.^(%FILENAME%^) IF NOT "%DEBUG%"=="" GOTO :EXIST_FILENAME CALL :ANS_YESNO "override ? (Y/N) " IF ERRORLEVEL 1 GOTO :ENDBAT DEL %FILENAME% ) :EXIST_FILENAME :: --------------------------------------------------------- ( ECHO.user %USERINFO% %PASSINFO% ECHO.cd %DESTPATH% ECHO.%MODE% ECHO.%FTPEXEC% %FILENAME% ECHO.bye ) >%FTPFILE%
:: --------------------------------------------------------- IF NOT "%DEBUG%"=="" ( ECHO.----- START ------ TYPE %FTPFILE% ECHO.----- END ------ )
%DEBUG% %FTPCMD% -i -n -s:%FTPFILE% %IPADDRESS%
IF "%DEBUG%"=="" ( DEL %FTPFILE% ) :: ------------------------------------------------------- GOTO :ENDBAT
:: ------------------------------------------------------- :SEPPROC SETLOCAL SET SRC=%1 SET SEPITEM1= SET SEPITEM2= :SEPPROC_LOOP IF "%SRC:~0,1%"=="" GOTO :SEPPROC_EXIT IF "%SRC:~0,1%"=="%SEPCHAR%" ( SET SEPITEM2=%SRC:~1% GOTO :SEPPROC_EXIT ) ELSE ( SET SEPITEM1=%SEPITEM1%%SRC:~0,1% ) IF "%SRC:~1,1%"=="" GOTO :SEPPROC_EXIT SET SRC=%SRC:~1% GOTO :SEPPROC_LOOP :SEPPROC_EXIT (ENDLOCAL &^ SET SEPITEM1=%SEPITEM1%&^ SET SEPITEM2=%SEPITEM2%&^ EXIT /B)
:: ------------------------------------------------------- :ANS_YESNO SETLOCAL SET MSG=%1 :ANS_LOOP SET /P ANS=%MSG% SET YN= IF "%ANS%"=="y" ( SET YN=0 ) IF "%ANS%"=="n" ( SET YN=1 ) IF "%ANS%"=="Y" ( SET YN=0 ) IF "%ANS%"=="N" ( SET YN=1 ) IF "%YN%"=="" GOTO :ANS_LOOP (ENDLOCAL &^ EXIT /B %YN%)
:: ------------------------------------------------------- :USAGE ECHO.usage %CMDNAME% [filename:mode] [ipaddress:path] [user:pass] GOTO :ENDBAT :: -------------------------------------------------------- :ENDBAT ENDLOCAL
EXIT /B
|
※無断転載禁止です。
|